spring5 从xml配置到注解配置
一 CAP1章节 将你的工程从XML配置到注解
创建Maven工程:
pom.xml引入- jar和Junit测试用例包
org.
-
5.0.6.
junit
junit
4.12
test
如果是以前,我们应该建立的beanx.xml
beans.xml内容如下,使用bean标签注册一些组件:
3,新建cap1包名,新建.java类

4,新建测试类::类路径下的XML

如果我们用注解开发, 很明显是不需要XML的
5,注解测试:如何使用注解(去掉配置文件)开发
新建类

6,注解测试:新建注解测试,用来测试//: 注解配置来获取IOC容器

二 CAP2章节 扫描规则
2.1 操作:新建cap2文件夹,新建.java配置类
作用:指定要扫描的包

1,@(value="com.enjoy.cap2")表示扫描此目录下的包
2,建立测试用例方法;

2.2 新建配置类
作用:定制包扫描时的过滤规则
新建dao, ,

在加入配置: @: 扫描规则
@(value="com.enjoy.cap2",={ @(type=.,={.class}), @(type=.,={.class})
},=false) //默认是true,扫描所有组件,要改成false,使用自定义扫描范围
*/
//@ value:指定要扫描的包
// = [] 指定扫描的时候按照什么规则排除那些组件
// = [] 指定扫描的时候只需要包含哪些组件
// = false 默认是true,扫描所有组件,要改成false
//----扫描规则如下
//.:按照注解
//.:按照给定的类型;比如按类型
//.:使用表达式
//.REGEX:使用正则指定
//.:使用自定义规则,自已写类,实现接口

//.的例子,常用
先新增自定义过滤规则类:
在申明
@(value="com.enjoy.cap2",={
@(type=.,={.class})
},=false)
class {}

三 CAP3章节 scope扫描规则
1,新建.java
2,没加@Scope之前, 默认的bean是单实例的. 新建 ()方法测试如下:
返回true, 证明取到的是同一个 bean,只实例化了一次.

3, 加入@Scope(“”) //多实例

: 多实例:IOC容器启动并不会去调用方法创建对象放在容器中,而是 每次获取的时候才会调用方法创建对象,见
: 单实例(默认):IOC容器启动会调用方法创建对象放到IOC容器中
以后每交获取就是直接从容器(理解成从map.get对象)中拿
: 主要针对WEB应用,同一次请求创建一个实例
: 同一个创建一个实例(后面两个用得不多,了解即可)
四 CAP4章节 lazy懒加载
1,新建.java

2,建立测试用例();
当在加入@Lazy时, 只有获取anno.时才会加载到IOC容器中

四 CAP5章节 @条件注册bean
1,将IOC容器注册bean时, 当操作系统为时,注册Lison实例; 当操作系统为LINUX时, 注册James实例,此时要用得@注解进行定制化条件选择注册bean;
2,新建.java,

新建.java类作为条件类, 同时必须得实现提供的接口

新建 条件类, 用来处理操作系统为LINUX的bean注册

2, 把IOC容器里的所有实例名打印出来(为了看效果,刚开始在配置类可以不加@)
@Test
void ()

3, 新建(), 测试@ 条件加载bean到IOC容器(加上@)

当引入@时, 容器可以选择性地注册bean.
五 CAP6章节 @注册bean
同样按流程先新建.java配置类
新建Dog.ava类-----> class Dog {}
新建Cat.java类----> class Cat{}
按以下1,2,3箭头步骤分别导入多个类,使用将dog, cat的bean注册到容器中,并测试打印,看容器中是否已加载此类

分别使用
@(Dog.class)
@({Dog.class,Cat.class})
可以批量导入组件的全类名数组,自定义逻辑返回需要导入的组件.java
@({Dog.class,Cat.class,.class})
新建, 新建Fish Tiger类(与建Cat和Dog一样)

怎么测呢?

当然,除了以上,还可以通过自定义注册,向容器中注册bean;
@({Dog.class,Cat.class,.class,.class})
新建自定义注册类,实现bean注册

当然除了以上加载方式,还可以通过实现接口方式来加载bean
* 使用提供的(工厂bean)
* beans..源码跟进去
* 容器调用()返回对象,把对象放到容器中;
* ()返回对象类型
* ()是否单例进行控制
* 新建实现
* 在里新建()方法
* 写完测试用例后:
* a,默认获取到的是工厂bean调用创建的对象
* b,要获取工厂Bean本身,需要在id前加个 &
*/
把自定义的加入配置类进行测试


400电话办理